home *** CD-ROM | disk | FTP | other *** search
/ Czech Logic, Card & Gambling Games / Logické hry.iso / hry / Fish Fillets / script / map / code.lua next >
Encoding:
Text File  |  2005-07-16  |  7.7 KB  |  241 lines

  1.  
  2. file_include('script/share/prog_border.lua')
  3.  
  4. -- -----------------------------------------------------------------
  5. -- Init
  6. -- -----------------------------------------------------------------
  7. local function prog_init()
  8.     initModels()
  9.     sound_playMusic("music/rybky06.ogg")
  10.     local pokus = getRestartCount()
  11.  
  12.     --NOTE: final level
  13.     small:setGoal("goal_alive")
  14.     big:setGoal("goal_alive")
  15.     mapous:setGoal("goal_out")
  16.  
  17.     -- -------------------------------------------------------------
  18.     local function prog_init_room()
  19.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  20.  
  21.         room.poh = 0
  22.         room.obec = 1000 + random(3000)
  23.         room.utb = 0
  24.  
  25.         return function()
  26.             pom2 = 0
  27.             if no_dialog() and isReady(small) and isReady(big) then
  28.                 if stdBorderReport() then
  29.                     addv(10, "map-v-ukol")
  30.                 elseif game_getCycles() == 10 + pokus then
  31.                     pom2 = 1
  32.                 elseif room.poh == 0 and mapous.X ~= mapous.XStart then
  33.                     pom2 = 6
  34.                     room.poh = 1
  35.                 elseif room.utb == 0 and isIn(mapous.X, {1, 2, 28}) then
  36.                     room.utb = 1
  37.                     pom2 = 7
  38.                 elseif room.obec > 0 then
  39.                     room.obec = room.obec - 1
  40.                 else
  41.                     room.obec = 1000 + random(1000 + math.floor(game_getCycles() / 5))
  42.                     pom2 = random(4) + 2
  43.                 end
  44.             end
  45.             switch(pom2){
  46.                 [1] = function()
  47.                     if random(3) > 0 then
  48.                         addv(7, "map-v-mapa")
  49.                     else
  50.                         addm(7, "map-m-mapa")
  51.                     end
  52.                     if pokus < 4 or random(100) < 60 then
  53.                         addm(7, "map-m-ukol")
  54.                         addv(7, "map-v-jasne")
  55.                         addm(7, "map-m-neplacej")
  56.                     end
  57.                 end,
  58.                 [2] = function()
  59.                     addv(7, "map-v-cojetam")
  60.                     addv(7, "map-v-poklady")
  61.                     addm(7, "map-m-uvidime")
  62.                 end,
  63.                 [3] = function()
  64.                     addm(7, "map-m-sneci")
  65.                     planDialogSet(8, "map-x-hlemyzdi", 111, sneci, "mluvi")
  66.                 end,
  67.                 [4] = function()
  68.                     addv(8, "map-v-oci")
  69.                 end,
  70.                 [5] = function()
  71.                     addv(8, "map-v-restart")
  72.                     addm(8, "map-m-pravidla")
  73.                 end,
  74.                 [6] = function()
  75.                     addm(7, "map-m-pohnout")
  76.                     addv(7, "map-v-dal")
  77.                 end,
  78.                 [7] = function()
  79.                     addm(7, "map-m-uz")
  80.                 end,
  81.             }
  82.         end
  83.     end
  84.  
  85.     -- -------------------------------------------------------------
  86.     local function prog_init_mapous()
  87.         return function()
  88.         end
  89.     end
  90.  
  91.     -- -------------------------------------------------------------
  92.     local function prog_init_voko1()
  93.         local eyes = {voko1, voko2}
  94.  
  95.         return function()
  96.             for key, eye in pairs(eyes) do
  97.                 if eye.anim == "" then
  98.                     switch(random(7)){
  99.                         [0] = function()
  100.                             setanim(eye, "d?10-99a1d?2-3a2d?2-3a1d?2-3a2d?2-3a1d?2-3a2d?2-3a1d?2-3a2d?2-3a0")
  101.                         end,
  102.                         [1] = function()
  103.                             setanim(eye, "d?10-99a3d?2-3a4d?2-3a3d?2-3a4d?2-3a3d?2-3a4d?2-3a3d?2-3a4d?2-3a0")
  104.                         end,
  105.                         [2] = function()
  106.                             setanim(eye, "d?10-99a?1-4d?10-30a0")
  107.                         end,
  108.                         [3] = function()
  109.                             setanim(eye, "d?10-99a?1-4d?10-30a0")
  110.                         end,
  111.                         [4] = function()
  112.                             setanim(eye, "d?10-99a3a1a4a1a3a2a4a1a3a1a4a1a3a1a4a1a0")
  113.                         end,
  114.                         [5] = function()
  115.                             setanim(eye, "d?10-99a3a1a4a1a3a2a4a1a3a1a4a1a3a1a4a1a0")
  116.                         end,
  117.                         [6] = function()
  118.                             setanim(eye, "d?10-99a?0-4d?2-8a?0-4d?2-8a?0-4d?2-8a?0-4d?2-8a0")
  119.                         end,
  120.                     }
  121.                 end
  122.                 goanim(eye)
  123.                 eye:updateAnim()
  124.             end
  125.         end
  126.     end
  127.  
  128.     -- -------------------------------------------------------------
  129.     local function prog_init_kr1()
  130.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  131.  
  132.         setanim(kr1, "d?1-50a0a1a2a3d1a3a2a1a0R")
  133.  
  134.         return function()
  135.             goanim(kr1)
  136.             kr1:updateAnim()
  137.         end
  138.     end
  139.  
  140.     -- -------------------------------------------------------------
  141.     local function prog_init_kr2()
  142.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  143.  
  144.         setanim(kr2, "d?1-50a0a1a2a3d1a3a2a1a0R")
  145.  
  146.         return function()
  147.             goanim(kr2)
  148.             kr2:updateAnim()
  149.         end
  150.     end
  151.  
  152.     -- -------------------------------------------------------------
  153.     local function prog_init_sneci()
  154.         local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
  155.  
  156.         sneci.mluvi = 0
  157.         local snails = {}
  158.         for i = 0, 8 do
  159.             snails[i] = getModelsTable()[sneci.index + i]
  160.         end
  161.  
  162.         return function()
  163.             for key, snail in pairs(snails) do
  164.                 if sneci.mluvi ~= 0 or snail.dir ~= dir_no then
  165.                     snail.afaze = 2
  166.                 else
  167.                     switch(snail.afaze){
  168.                         [0] = function()
  169.                             if random(100) == 1 then
  170.                                 snail.afaze = 1
  171.                             end
  172.                         end,
  173.                         [1] = function()
  174.                             switch(random(6)){
  175.                                 [1] = function()
  176.                                     snail.afaze = 3
  177.                                 end,
  178.                                 [2] = function()
  179.                                     snail.afaze = 2
  180.                                 end,
  181.                             }
  182.                         end,
  183.                         [2] = function()
  184.                             if random(10) == 1 then
  185.                                 snail.afaze = 1
  186.                             end
  187.                         end,
  188.                         [3] = function()
  189.                             if random(4) == 1 then
  190.                                 snail.afaze = 0
  191.                             end
  192.                         end,
  193.                     }
  194.                 end
  195.                 snail:updateAnim()
  196.             end
  197.         end
  198.     end
  199.  
  200.     -- --------------------
  201.     local update_table = {}
  202.     local subinit
  203.     subinit = prog_init_room()
  204.     if subinit then
  205.         table.insert(update_table, subinit)
  206.     end
  207.     subinit = prog_init_mapous()
  208.     if subinit then
  209.         table.insert(update_table, subinit)
  210.     end
  211.     subinit = prog_init_voko1()
  212.     if subinit then
  213.         table.insert(update_table, subinit)
  214.     end
  215.     subinit = prog_init_kr1()
  216.     if subinit then
  217.         table.insert(update_table, subinit)
  218.     end
  219.     subinit = prog_init_kr2()
  220.     if subinit then
  221.         table.insert(update_table, subinit)
  222.     end
  223.     subinit = prog_init_sneci()
  224.     if subinit then
  225.         table.insert(update_table, subinit)
  226.     end
  227.     return update_table
  228. end
  229. local update_table = prog_init()
  230.  
  231.  
  232. -- -----------------------------------------------------------------
  233. -- Update
  234. -- -----------------------------------------------------------------
  235. function prog_update()
  236.     for key, subupdate in pairs(update_table) do
  237.         subupdate()
  238.     end
  239. end
  240.  
  241.